macOS 是 UNIX 吗? (那是什么意思?) 您所在的位置:网站首页 mac os是基于linux吗 macOS 是 UNIX 吗? (那是什么意思?)

macOS 是 UNIX 吗? (那是什么意思?)

2024-06-14 21:39| 来源: 网络整理| 查看: 265

macOS 是 UNIX 吗? (那是什么意思?)

macOS 是 UNIX 还是 Unix?还是类 Unix?我们回答了永无止境的争论,并一路解释了 POSIX 和 SUS 等标准。

macOS:UNIX 与否?

这个主题提出了一系列不同的问题。 macOS 的血统是什么?今天的 macOS 中仍然存在多少遗传材料,这重要吗?在我们开始回答某个东西是 UNIX、Unix 还是类 Unix 之前,我们需要熟悉这些术语的含义。谁来决定某个东西是 Unix 还是 UNIX,他们使用什么标准?

让我们从头开始。

Unix 是 50 年前在 AT&T 旗下的研发公司贝尔实验室创建的。快进到 1973 年和 Unix 的第 4 版,它是用 C 编程语言重写的。这使得操作系统更便携,更容易转移到不同的硬件平台。同年,Unix 的两位核心架构师肯·汤普森 (Ken Thompson) 和丹尼斯·里奇 (Dennis Ritchie) 在一次关于操作系统的会议上发表了一篇论文。他们立即收到了操作系统副本的请求。

受可追溯至 1956 年的一项同意令的约束,AT&T 不得不避开“除了提供公共运营商通信服务之外的任何业务”。 Unix 不符合 AT&T 可以从中获利的条件。因此,该公司当时做了一件了不起的事情:以自由许可的形式将 Unix 作为源代码分发。小额费用包括运输和包装以及“合理的特许权使用费”。

Unix 的激增

因为 Unix 是“按原样”提供的,所以它没有得到支持。结果,Unix 社区开始联合起来帮助成员,修补和扩展 Unix。因此,您可以获得源代码,对其进行修改,并获得社区的支持。这听起来很熟悉。不同风格的 Unix 开始出现,经过调整和调整以适应从事这项工作的组织。

Bob Fabry 是加州大学伯克利分校的计算机科学教授,他是 1973 年操作系统原理研讨会的项目委员会成员。他聆听了 Thompson 和 Ritchie 的题为The UNIX Time-Sharing System 的演讲。

Fabry 索要操作系统的副本,1974 年,Unix 被安装在加州大学伯克利分校计算机科学研究组 (CSRG) 的 PDP/11 上。值得注意的是,肯·汤普森 (Ken Thompson) 在那里呆了一年,致力于开发很快成为该大学自己风格的 Unix。分发了 UC Berkeley 更改和添加的副本,并被称为 Berkeley Software Distribution (BSD)。最终,这些成为整个 Unix 系统的发行版,仍被称为 BSD。版本号(例如 4.2BSD)标识不同的发行版。

1984 年,AT&T 摆脱了 1956 年同意法令的束缚,能够适当地销售其操作系统。它包括 BSD 代码,例如 TCP/IP、vi 和 C shell、csh。即使有了这种异花授粉和协作,在许可方面也存在困难。 BSD 包含 AT&T 代码,它不是开源的,但 BSD 元素是。

开发了一个没有 AT&T 代码的 BSD 版本来解决这些问题。然而,当 AT&T 代码被删除时,大约 20% 的内核丢失了。 William Jolitz 编写了缺失的部分,该版本的 Unix 发布为 386BSD。 386BSD 项目停滞不前,但在 1993 年,其源代码库催生了 NetBSD 和 FreeBSD 项目。

这给了我们一块拼图:FreeBSD。

下一步

1985 年被苹果公司解雇后,史蒂夫·乔布斯成立了一家名为 NeXT, Inc. 的公司。为了为其工作站产品线提供操作系统,NeXT 开发了 NeXTSTEP。它使用 BSD 作为代码库,但引入了一个完全不同的内核。

NeXT 使用修改版的 Mach 微内核和 4.3BSD 组成了 NeXTSTEP,这是这个拼图的第二部分。 Mach 是在卡内基梅隆大学开发的,旨在促进对分布式和并行计算的研究。研究团队使用BSD作为操作系统并替换了内核,而不是编写自己的操作系统。

厦大

1996 年,Apple, Inc. 收购了 NeXT, Inc.,从而收购了 NeXTSTEP。 Apple 开始开发最终通过 Mac OS X 成为 macOS 的操作系统。它升级了 Mach 内核,并将其替换为开放软件基金会开发并在 OSF/1 操作系统中使用的更高级版本。 Apple 还使用 FreeBSD 发行版的更新和改进版本升级了 BSD 组件。

Apple 将 BSD 内核的元素带回了 Mach 内核。它还开发了一个混合内核,结合了单片和微内核架构的特点。

Apple 基于 NeXTSTEP 的 DriverKit 开发的 I/O Kit 也包括在内。这使得将驱动程序添加到内核成为可能,而不必每次都修改它。

XNU是拼图的第三部分。

POSIX 和 SUS 标准

1996 年,两个标准机构——X/Open 和开放软件基金会——合并成立了 The Open Group。

The Open Group 是 UNIX 商标的认证机构。换句话说,它必须先给您的操作系统盖上橡皮图章,使其符合其标准,然后您才能称其为 UNIX。全部大写字母的 UNIX 是合规性的标志。

因此,类别如下:

Unix:操作系统系列。该系列包括 UNIX 操作系统和类 Unix 操作系统。 UNIX 操作系统:这些已被证明符合标准。 类 Unix 操作系统:这些看起来和操作起来都像 Unix,但尚未经过合规认证。

当然,“类 Unix”类别中的某些操作系统完全有可能在明天进行测试并发现符合要求。这些现在实际上是 UNIX,但它们只能归类为 Unix,因为它们还没有橡皮图章。

有两种认证 UNIX 的标准:POSIX 和单一 UNIX 规范 (SUS)。 SUS 是 POSIX 的超集。所以,有些东西可以是 POSIX 兼容的,但这并不能使它成为 UNIX。但是,如果某些东西符合 SUS,那么它就是 UNIX。

POSIX 和 SUS 形成了大量文档(大约 3,700 页)。它们定义了兼容 UNIX 系统各个方面的操作和预期行为。从异步和同步 I/O 到脚本接口和用户级程序的一切都被编目和定义。

这些标准定义了应用程序接口和运行时行为,但没有规定它们的实现方式。

那么,macOS 是 UNIX 吗?

答案必须是肯定的。

您可以通过 FreeBSD 追溯到 BSD,然后从那里追溯到贝尔实验室在 AT&T 增加许可费之前分发的 Unix。

但这没关系。

如果你现在从头开始写一个操作系统,只要它满足 SUS 的要求,它就被认为是 UNIX。你如何实施它并不重要。 macOS 核心的 XNU 内核是一种混合架构。它将 Apple 的代码与部分 Mach 和 BSD 内核结合在一起。

但这也无所谓。重要的是它符合衡量标准的要求。

XNU 内核的 BSD 部分提供了 POSIX 应用程序编程接口(如各种 API 和 BSD 系统调用)。在 XNU 中保持 BSD 内核的那个元素完整是获得 UNIX 认证的关键。它允许 XNU 与系统的其余部分兼容和兼容 UNIX。

macOS 是经 The Open Group 认证的 UNIX 03 兼容操作系统。从 2007 年开始,从 MAC OS X 10.5 开始。唯一的例外是 Mac OS X 10.7 Lion,但 OS X 10.8 Mountain Lion 恢复了合规性。

有趣的是,正如 GNU 代表“GNU’s Not Unix”,XNU 代表“X is Not Unix”。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有